Java 读书笔记3

操作符

1.赋值和引用(别名);
=我们最常见;意思可以使等于,也可以是赋值,在Java中,赋值也是有坑的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Tank {
int level;
}
public static void main(String[] args) {
Tank tank1 = new Tank();
tank1 .level = 1;
Tank tank2 = new Tank();
tank2. level = 2;
System.out.println(tank1.level);//输出1
System.out.println(tank2.level);//输出2
tank1 = tank2;
//tank1.level = tank2.level; 其实这么写才是对的
System.out.println(tank1.level);//输出2
System.out.println(tank2.level);//输出2
tank1.level = 27;
System.out.println(tank2.level);//输出27
}

对上面的赋值 tank1=tank2 来说,好像是在说你以后什么值都和他相等就对了;但其实不是的,tank1 = tank2 是在讲tank1 以后和tank2 都指向同一个对象了;
tank1 和tank2 本质都是引用,现在他们指向同一个对象了,那么不管这个对象的level怎么变化,tank1和tank2 都是一个值;

打个比方好了 不管叫做对象名或者引用什么的;我们将对象看成人,将引用看成名字或代号,说家里两兄弟,哥哥去打仗了,对弟弟说,这一去恐怕就回不来了,带着我的名字活下去吧;
那么从此以后弟弟就有了两个名字同时代表他;而哥哥恐怕就被当做不存在喽;

ps:本章有很多关于操作符的相关内容能够,用到再看吧,反正记不住;